Shifu物联网知识普及之mqtt篇——服务质量
· 阅读需 5 分钟
信息
Shifu能够轻松接入使用MQTT协议的设备,让物联网开发变得更高效。Shifu是一个Kubernetes原生的物联网开发框架,开发者通过Shifu可以轻松实现连接、监控和控制任何物联网设备。Shifu将Kubernetes带 入到物联网边缘计算场景中,助力实现物联网应用程序的可扩展性和高可用性。
相信你已经对MQTT的QoS(Quality of Service,服务质量)有了个大概印象——用于指示如何传递消息;共有3个QoS级别和2种类型的消息。
快速回顾
3个QoS级别: 0-最多一次 1-至少一次 2-正好一次
2种交付方式:
- 发布者对中间人
- 中间人对订阅者
此外,在上一篇文章中,我们已经讨论了从订阅者发送至中间人的订阅消息;它定义了用户可以接受的最大QoS级别,任何具有更高级别的消息都将被降低至订阅该级别用户能承受的最大级别。
0-最多一次
我们常能通过事物的名字来判断它是做什么的。因此,如果你的QoS级别为0,则消息要么被传递一次,要么不传递——只尝试一次,并且不重试。发了就算完。哇,非常异步。
1-至少一次
假设我要传递某条信息,则会疯狂地进行重试。发送消息的人将继续重复发送消息,直到它从接收者那里收到PUBACK(由packetId组成,仅此而已)。
还记得我们在发布消息中的dupFlag字段吗?下面就来看看如何使用——在初次尝试后的每次重试中,这个dupFlag都会被设置为true,以此来通知收件人这可能是一条重复消息。